package com.ranyk.www.mapper;


import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ranyk.www.entity.Role;
import com.ranyk.www.entity.UserRole;
import com.ranyk.www.pojo.vo.AdminUserVO;
import com.ranyk.www.support.page.PageInfo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.session.RowBounds;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * CLASS_NAME: UserRoleMapper.java <br/>
 *
 * @author ranyk           <br/>
 * @version V1.0           <br/>
 * @decription: 管理员角色关联表  数据访问层接口  <br/>
 * @date: 2022-04-03 <br/>
 */
@Mapper
@Repository
public interface UserRoleMapper extends BaseMapper<UserRole> {

    /**
     * 插入用户角色记录
     *
     * @param userRoles 用户角色记录信息
     * @return 返回新增操作结果
     */
    Integer insertUserRoles(@Param("userRoles") List<UserRole> userRoles);

    /**
     * 根据管理员ID查找角色列表
     *
     * @param userId 管理员ID
     * @param status 角色状态
     * @return 返回查询结果 List 集合,单个实体对象参见 {@link Role}
     */
    List<Role> listByUserId(@Param("userId") Long userId, @Param("status") Integer status);

    /**
     * 根据角色ID查找管理员列表
     *
     * @param roleId    角色ID
     * @param pageInfo  分页信息
     * @param search    搜索内容
     * @param rowBounds 分页实体
     * @return 返回查询结果 List 集合,单个实体对象参见 {@link AdminUserVO}
     */
    List<AdminUserVO> listByRoleId(@Param("roleId") Long roleId, @Param("pageInfo") PageInfo pageInfo, @Param("search") String search, RowBounds rowBounds);
}